Database management systems typically contain features that enable various users to gauge or assess the operational characteristics of such systems. These features are commonly implemented in what are generally referred to as “monitors”.
Database Administrators (DBAs) typically use monitors for a variety of tasks. One common usage of monitors is for evaluating the activity level of the database management system. In its simplest sense, this is equivalent to asking “How busy is the system?” The system utilization is an important factor to consider when making a variety of system management decisions. For example, the DBA may wish to identify periods of reduced demand so they may execute non-production utility work (i.e. database backups, statistics collection), which would otherwise negatively impact a production workload. In another scenario, the DBA may be trying to identify the periods of high activity so they can add extra capacity.
To assess database activity, a DBA would typically select from a number of known “monitors”. These may include (but are not limited to) transaction rate, a measure of central processing unit (CPU) utilization, and/or input/output [I/O] bandwidth. However, there exist a number of limitations that prevent the selection of most metrics as a singular indicator of database activity. For example, transaction rate is an effective metric for expressing the level of database activity when the workload is transactional in nature. Transactional workloads typically consist of small, simple transactions without substantial variation in the time or resources needed to service any particular transaction. However, the same metric is largely ineffective in decision support environments where there is a large variance in the “size” of transactions. Similarly, the CPU utilization alone would generally be regarded as a poor indicator of activity of an I/O constrained RDBMS. Employing a combination of metrics would typically increase the complexity and decrease the efficiency of RDBMS activity level assessment systems.
Software applications or systems may also benefit from querying the activity level of the database management system. One common class of autonomic system strives to maintain an optimum level of workload performance. Such systems typically operate by continually polling the activity on the system and taking some action when the activity level increases or decreases beyond defined thresholds. Like its human counterpart, the autonomic system is interested in assessing the general activity of the RDBMS. However, the frequency at which the autonomic system queries the level of activity can raise efficiency concerns if the cost of gathering the data used to assess activity level is excessive. To be suitable within an autonomic computing environment, the mechanism for measuring the level of activity should have negligible impact on the performance of the RDBMS.